package fr.nts.framework.front.form.validation.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

import org.apache.commons.lang.StringUtils;

/**
 * Vérifie le champ est une chaine de caractère et au bon format
 * 
 * @author sco
 * @version 1.0.0
 */
@Target({ElementType.FIELD})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validator = "stringValidator")
public @interface StringConstraint{
	
	/**
	 * Indique si la chaine de caractère peut être nulle
	 */
	public boolean notNull() default false;
	
	/**
	 * Taille maximum pour le champ
	 */
	public long maxSize() default -1;
	
	/**
	 * Taille minimum pour le champ
	 */
	public long minSize() default -1;
	
	/**
	 * RegEx pour le champ cible
	 */
	public String regEx() default StringUtils.EMPTY;
}